(()=>{"use strict";let e;!function(e){e.colorPrimary="color-primary",e.errorReportingLevel="error-reporting-level",e.cmpProvider="cmp-provider",e.cmpProviderCookieGroup="cmp-provider-cookie-group",e.environment="environment",e.notIntegrateCmp="not-integrate-cmp",e.overrideHasConsent="override-has-consent",e.softPrivacyRegulated="soft-privacy-regulated",e.hideButton="hide-button",e.retargetingOn="retargeting-on",e.gptTargetingOn="gpt-targeting-on",e.conversionOn="conversion-on",e.extendLoginToSubdomains="extend-login-to-subdomains",e.clientId="client-id",e.loginExceptionPages="login-exception-pages",e.loginInclusionPages="login-inclusion-pages",e.immediateLoginPages="immediate-login-pages",e.loginInNewTab="login-in-new-tab",e.iframeLogin="iframe-login",e.loginRedirect="login-redirect",e.metricsRootUrl="metrics-root-url",e.metricsCollectorUrl="metrics-collector-url",e.retargetingScriptUrl="retargeting-script-url",e.retargetingSegmentsUrl="retargeting-segments-url",e.healthCheckUrl="health-check-url",e.errorReportingUrl="error-reporting-url",e.authority="authority",e.tagType="tag-type",e.fbPixelOn="fb-pixel-on",e.fbPixelCoreOn="fb-pixel-core-on",e.fbPixelCohortIds="fb-pixel-cohort-ids",e.gtmOn="gtm-on",e.gtmCohortIds="gtm-cohort-ids"}(e||(e={}));function t(e,t={}){const n={...t};return n.headers={...n.headers,"Anon-App-Version":"1.8.43"},fetch(e,n)}let n;function o(){const e=Array.from(document.getElementsByTagName("script"));for(const t of e){const e=t.getAttribute("src");if(e&&e.includes("googletagmanager.com/gtm.js"))try{return new URLSearchParams(new URL(e).search).get("l")}catch(e){return null}}return null}function r(e,t,n){if(null==e||"object"!=typeof e)return!1;if(Object.hasOwnProperty.call(e,t)&&e[t]===n)return!0;for(const o in e)if(Object.hasOwnProperty.call(e,o)&&"object"==typeof e[o]&&null!==e[o]&&r(e[o],t,n))return!0;return!1}!function(e){e.IdwHydraHasErrorKey="IDW_HYDRA_HAS_ERROR",e.IdwCohortIdsKey="cohort_ids",e.idwScrollY="idw-scroll-y",e.IdwImpressionsKey="idw-impressions",e.anonymised="Anonymised",e.isOofUrl="idw-oof",e.idwOutdated="idw-outdated",e.AnonSignalLift="anon-sl",e.AnonSignalLiftGroup="anon-sl-group",e.AnonSignalLiftGroupNoUser="anon-sl-group-no-user",e.AnonSignalLiftGroupTimestamp="anon-sl-group-ts",e.AnonSignalLiftGroupSession="anon-sl-group-session",e.AnonUserSync="anon-hndshk",e.AnonAudienceMemberId="anon-audience-member",e.AnonAudienceMeta="anon-audiences-meta",e.AnonAudienceGoogle="anon-audiences-google"}(n||(n={}));const i="dataLayer";function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const a=new class{constructor(){s(this,"observers",new Map),s(this,"dataLayerPushHandler",void 0),s(this,"lastNotifiedUrls",{oldUrl:"",newUrl:""}),s(this,"dataLayerName",void 0),this.dataLayerName=o()||i,this.dataLayerPushHandler=this.handleDataLayerPush.bind(this),window[this.dataLayerName]?this.overrideDataLayerPush():window.addEventListener(this.dataLayerName,this.overrideDataLayerPush.bind(this))}overrideDataLayerPush(){const e=window[this.dataLayerName].push;window[this.dataLayerName].push=(...t)=>{e.apply(window[this.dataLayerName],t),this.dataLayerPushHandler(t)}}handleDataLayerPush(e){if(e[0]&&e[0].event?.includes("gtm.historyChange")){const t=e[0],n=t["gtm.oldUrl"],o=t["gtm.newUrl"];this.lastNotifiedUrls.oldUrl===n&&this.lastNotifiedUrls.newUrl===o||(this.lastNotifiedUrls={oldUrl:n,newUrl:o},this.notifyObservers(n,o))}}notifyObservers(e,t){const n=Array.from(this.observers.values());for(const o of n)o(e,t)}addEventListener(e){const t=Symbol();return this.observers.set(t,e),t}removeEventListener(e){this.observers.delete(e)}},l={async getUser(){return this.getUserSync()},getUserSync(){try{const e=Object.entries(localStorage).find((([e])=>e.startsWith("oidc.user:")));return e?JSON.parse(e[1]):null}catch(e){return console.warn("Anonymised: Error retrieving user from localStorage:",e),null}},queueLogin(){}},c="AnonRetargeting:",d="unsent-segments";let u=null;const g=document.currentScript;async function m(e){const o=g.getAttribute("metrics-url");if(!o)return void console.warn(`${c} required script attribute metrics-url is not defined!`);const r={method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+u?.access_token},body:JSON.stringify({tag:e.uid}),keepalive:!0},{ok:i}=await t(o,r);if(i&&"published"===e.status)try{document.dispatchEvent(new CustomEvent("anonRetargetingSegmentAssigned",{detail:{tag:e.uid}}));const t=new Set(JSON.parse(localStorage.getItem(n.IdwCohortIdsKey))??[]);t.add(e.uid),localStorage.setItem(n.IdwCohortIdsKey,JSON.stringify(Array.from(t)))}catch(e){console.warn(`${c} segment assigned, but failed to update segment id in local storage:`,e)}}function f(){return new Set(JSON.parse(sessionStorage.getItem(d))??[])}async function h(){const n=g.getAttribute(e.retargetingSegmentsUrl);if(!n)return void console.warn(`${c} required script attribute ${e.retargetingSegmentsUrl} is not defined!`);if(u=await l.getUser(),function(e){return!e?.access_token}(u))return void console.warn(`${c} auth token expired. Retargeting will start after OOF`);const s=f();s.forEach((async e=>{const t={uid:e};await m(t),s.delete(e),0===s.size?sessionStorage.removeItem(d):sessionStorage.setItem(d,JSON.stringify(Array.from(s)))}));const a=(await async function(e){const n={headers:{"Content-Type":"application/json",Authorization:"Bearer "+u?.access_token}};try{const o=await t(e,n);if(!o.ok)throw new Error(`Failed to fetch segment definitions. Status: ${o.status}`);return await o.json()}catch(e){return console.warn(e),[]}}(n)).filter((e=>{return null===(t=e.definition).pages||0===t.pages.length||t.pages.some((e=>"contains"===e.condition.value?window.location.href.includes(e.value):function(e,t){const n=e=>e.replace(/^[^:]+:\/\/+/,"").replace(/\/$/,"").replace(/^www\./,"");return e===t||n(e)===n(t)}(window.location.href,e.value)));var t}));console.log(`${c} found ${a?.length??0} segment definitions for current page`),a.forEach((e=>{e.definition?.properties?.length>0?e.definition.properties.forEach((t=>{try{if("slotClicked"===t.event.value){const n=t.condition.value,o=t.value.toString();console.log(`${c} slotClicked '${n}=${o}' condition`);const r=new Set;window.googletag.cmd.push((function(){window.googletag.pubads().getSlots().forEach((t=>{const i=t.getSlotElementId(),s=document.getElementById(i);s&&!r.has(i)&&(s.addEventListener("click",(function(){const r=t.getResponseInformation();if(r){console.log(`${c} rs slotClicked event: ${n}:${r[n]}, val ${o}`);const t=r[n]?.toString();t===o&&m(e)}})),r.add(i))})),window.googletag.pubads().addEventListener("slotRenderEnded",(function(t){if(!t.isEmpty){const i=t.slot.getSlotElementId(),s=document.getElementById(i);s&&!r.has(i)&&(s.addEventListener("click",(function(){console.log(`${c} slotClicked event: ${n}:${t[n]}`),t[n]?.toString()===o&&m(e)})),r.add(i))}}))}))}else if("slotViewed"===t.event.value){const n=t.condition.value,o=t.value.toString();console.log(`${c} slotViewed '${n}=${o}' condition`),window.googletag.cmd.push((function(){window.googletag.pubads().getSlots().forEach((t=>{const r=t.getResponseInformation();if(r){const i=t.getSlotElementId();if(function(e){if(!e||!e.getBoundingClientRect)return!1;const t=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth;return t.top>=0&&t.left>=0&&t.bottom<=n&&t.right<=o}(document.getElementById(i))){console.log(`${c} rs slotViewed event: ${n}:${r[n]}, val ${o}`);const t=r[n]?.toString();t===o&&m(e)}}})),window.googletag.pubads().addEventListener("impressionViewable",(function(t){console.log(`${c} slotViewed event: ${n}:${t[n]}`),t[n]?.toString()===o&&m(e)}))}))}else if("dataLayer"===t.event.value){const n=t.condition.value,s=t.value;if(console.log(`${c} dataLayer '${n}=${s}' condition`),void 0!==n&&void 0!==s){const t=o()||i;console.log(`${c} GTM custom dataLayer key '${t}'`);Object.values(window[t]).some((e=>r(e,n,s)))&&m(e)}}else{console.log(`${c} selector ${t.value}, condition ${t.condition.value}`);const n="id"===t.condition.value?p(t.value)?[p(t.value)]:[]:function(e){const t=Array.from(document.querySelectorAll(e));if(t.length)return t;const n=Array.from(document.querySelectorAll("iframe"));for(const o of n)try{o?.contentDocument?.querySelectorAll&&t.push(...Array.from(o.contentDocument.querySelectorAll(e)))}catch(t){console.warn(`${c} failed to query selector ${e} in iframe ${o.src}:`,t?.message)}return t}(t.value);console.log(`${c} found ${n?.length??0} elements to subscribe to ${t.event.value} event. Segment definition ${e?.uid}`),n.forEach((n=>{n.addEventListener(t.event.value,(()=>{const t=f();t.add(e.uid),sessionStorage.setItem(d,JSON.stringify(Array.from(t))),m(e).then((()=>{const t=f();t.delete(e.uid),sessionStorage.setItem(d,JSON.stringify(Array.from(t)))}))}))}))}}catch(t){return void console.warn(`${c} failed parsing segment definition ${e.uid}:`,t?.message)}})):e.definition&&(console.log(`${c} Segment 'properties' blank. Assign user by the page view. Segment definition ${e.uid}`),m(e))}))}function p(e){const t=document.getElementById(e);if(t)return t;const n=Array.from(document.querySelectorAll("iframe"));for(const t of n)try{if(t?.contentDocument?.getElementById){const n=t.contentDocument.getElementById(e);if(n)return n}}catch(n){console.warn(`${c} failed to get element by id ${e} in iframe ${t.src}:`,n?.message)}return null}function y(){setTimeout((()=>h()),1e3)}a.addEventListener(((e,t)=>{console.log(`${c} SPA route changed from:`,e,"to:",t),(e=>{if(!e)return!1;try{let t;return t=e.includes("?")||e.startsWith("/")?new URL(e,"http://dummy.base").searchParams:new URLSearchParams(e),t.has("callback")&&t.has("code")}catch{return!1}})(e)?console.log(`${c} Skip route change handler for the redirect url`):y()})),"complete"===document.readyState||"interactive"===document.readyState?y():document.addEventListener("DOMContentLoaded",(()=>{y()}))})();